package fr.emse.tatiana.replayable;

import java.util.List;

/**
 * @author dyke
 *
 * Replayable represents the commands that
 * can be sent to any replayer.
 */

public interface Replayable {

	/**
	 * Position the replayer at this replayable unit.
	 * 
	 * @param time
	 */
	public void goTo(SynchronisationEvent event);
	
	
	/**
	 * @param time
	 */
	public void mark(long time);
	
	public void end();
	
	/**
	 * For efficiency reasons it can be useful to only send goto when it is really 
	 * necessary.
	 * 
	 * @return The list of timestamps of the events that compose this replayable.
	 */
	public List<Long> getEvents();
	
}
